"""

ans;
dfs(层数，其他参数){
   if（到达目的地，或者 出局）{
       更新答案，ans
       return;
   }
   剪枝
   for (用i遍历下一层所有可能的情况){
        if(vist[i]==0){
            # 记录是否被访问过
            vist[i]=1;
            dfs(层数+1,其他参数)；
            # 回溯
            vist[i]=0;
        }
   }
 }
"""
